home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / SWAG / SWAGA_C / COMM.SWG / 0006_Remote ANSI Detect.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  2KB  |  50 lines

  1. { determine if ANSI.SYS loaded on micro }
  2. Function AnsiSysLoaded : Boolean;
  3. Var
  4.   _AX : Word;
  5.   Regs: Registers;
  6. begin
  7.    Regs.AX := $1a00;
  8.    Intr($2f,Regs);
  9.    _Ax := Regs.AX;
  10.    ANSISysLoaded := Lo(_AX) = $FF
  11. end;
  12.  
  13. { ------------------------------------------------------------------------
  14.                               DETECTANSI
  15.  Detect whether the remote user has ANSI support For initial Graphic mode.
  16.  ------------------------------------------------------------------------ }
  17. Function DetectAnsi : Boolean;
  18. Var
  19.   AnsiDetected : Boolean;
  20.   AnsiChar     : Char;
  21. begin
  22.   AnsiDetected := False;
  23.   If (OrgCarr) then                 { not sysop_local then }
  24.   begin
  25.     Fossil.ModemPut(#27+'[6n');    { Esc[6n (Cursor Position Request) }
  26.     Fossil.FlushBuff;
  27.     Crt.Delay(2000);               { waits For response (2 second) }
  28.     If (Fossil.SerialChar) then    { if modem buffer is not empty }
  29.     begin
  30.       AnsiChar := Fossil.Receive;
  31.       If (AnsiChar in [#27,'0'..'9','[','H']) then
  32.         AnsiDetected := True;
  33.     end;
  34.     Crt.Delay(1000);      { Pause 1 second }
  35.     Fossil.PurgeLine;     { Purge input buffer }
  36.     Fossil.PurgeOutput;   { Make sure nothing is in output buffer }
  37.   end
  38.   else
  39.     { if local, check For ANSI.SYS loaded }
  40.     AnsiDetected := AnsiSysLoaded;
  41.     { here you might wanna say:
  42.       if not AnsiSysLoaded then UseAnsiSimulator := True; }
  43.  
  44.   If AnsiDetected then
  45.     PrintLn('ANSI Graphics detected.')
  46.   else
  47.     PrintLn('ANSI Graphics disabled.');
  48.   DetectAnsi := AnsiDetected;
  49. end;
  50.